www.gusucode.com > WSTMall PHP网店系统 v1.6.0PHP源码程序 > WSTMall PHP网店系统 v1.6.0/wstmall_v1.6.0_160506/wstmall_v1.6.0_160506/Upgrade/Upgrade/Apps/Home/Model/ShopsModel.class.php

    <?php
namespace Home\Model;
/**
 * ============================================================================
 * WSTMall开源商城
 * 官网地址:http://www.wstmall.com 
 * 联系QQ:707563272
 * ============================================================================
 * 店铺服务类
 */
class ShopsModel extends BaseModel {
     /**
	  * 查询店铺关键字
	  */
	 public function checkShopName($val,$id = 0){
	 	$rd = array('status'=>-1);
	    if(!WSTCheckFilterWords($val,$GLOBALS['CONFIG']['limitAccountKeys'])){
	 		$rd['status'] = -2;
	 		return $rd;
	 	}
	 	$sql = " shopName ='%s' and shopFlag=1 ";
	 	$keyArr = array($val);
	 	if($id>0)$sql.=" and shopId!=".$id;
	 	$rs = $this->where($sql,$keyArr)->count();
	    if($rs==0){
	    	$rd['status'] = 1;
	    }
	    return $rd;
	 }
   /**
    * 商家登录验证
    */
	public function login(){
		$rd = array('status'=>-1);
		$loginName = WSTAddslashes(I('loginName'));
	 	$m = M('users');
	 	$users = $m->where('(loginName="'.$loginName.'" or userPhone="'.$loginName.'" or userEmail="'.$loginName.'") and userFlag=1 and userStatus=1')->find();
	 	if($users['loginPwd']==md5(I('loginPwd').$users['loginSecret']) && $users['userType']>=1){
	 		//加载商家信息
	 		$s = M('shops');
	 		$shops = $s->where('userId='.$users['userId']." and shopFlag=1")->find();
	 		$shops["serviceEndTime"] = str_replace('.5',':30',$shops["serviceEndTime"]);
		    $shops["serviceEndTime"] = str_replace('.0',':00',$shops["serviceEndTime"]);
		    $shops["serviceStartTime"] = str_replace('.5',':30',$shops["serviceStartTime"]);
		    $shops["serviceStartTime"] = str_replace('.0',':00',$shops["serviceStartTime"]);
	 		$users = array_merge($shops,$users);
	 		$rd['shop'] = $users;
	 		$rd['status'] = 1;
	 		$m->lastTime = date('Y-m-d H:i:s');
	 		$m->lastIP = get_client_ip();
	 		$m->where(' userId='.$shops['userId'])->save();
	 		//记录登录日志
			$data = array();
			$data["userId"] = $shops['userId'];
			$data["loginTime"] = date('Y-m-d H:i:s');
			$data["loginIp"] = get_client_ip();
			M('log_user_logins')->add($data);
	 		
	 	}
	 	return $rd;
	}
	
	/**
	 * 加载商家信息
	 */
	public function loadShopInfo($userId){
		$shops = $this->queryRow('select s.*,u.userType,u.userPhone from __PREFIX__shops s,__PREFIX__users u where s.userId=u.userId and u.userId='.$userId);
	    $shops["serviceEndTime"] = str_replace('.5',':30',$shops["serviceEndTime"]);
		$shops["serviceEndTime"] = str_replace('.0',':00',$shops["serviceEndTime"]);
		$shops["serviceStartTime"] = str_replace('.5',':30',$shops["serviceStartTime"]);
		$shops["serviceStartTime"] = str_replace('.0',':00',$shops["serviceStartTime"]);
		return $shops;
	}
	
	/**
	  * 游客开店
	  */
	 public function addByVisitor(){
	 	$rd = array('status'=>-1);
	    
	 	$userRules = array(
		     array('loginName','require','账号不能为空!',1),
		     array('loginPwd','require','密码不能为空!',1,'',1),
		     array('userName','require','店主姓名不能为空!',1,'',1),
		     array('userPhone','require','手机号不能为空!',1),
		);
		
		$shopRules = array(
		     array('areaId1','integer','请选择所在省份!',1),
		     array('areaId2','integer','请选择所在城市!',1),
		     array('areaId3','integer','请选择所在县区!',1),
		     array('goodsCatId1','integer','请选择行业!',1),
		     array('shopName','require','请输入店铺名称!',1),
		     array('shopCompany','require','请输入公司名称!',1),
		     array('shopTel','require','请输入公司!电话',1),
		     array('shopImg','require','请上传公司图标!',1),
		     array('shopAddress','require','请输入公司地址!',1),
		     array('bankId','integer','请选择银行!',1),
		     array('bankNo','require','请输入银行卡号!',1),
			 array('bankUserName','require','请输入银行卡所有人名称!',1),
		     array('latitude','require','请标记店铺地址!',1),
		     array('longitude','require','请标记店铺地址!',1),
		     array('mapLevel','integer','请标记店铺地址!',1),
		     array('isInvoice',array(0,1),'无效的开发票状态!',1,'in'),
		     array('serviceStartTime','double','请选择店铺开始时间!',1),
		     array('serviceEndTime','double','请选择店铺结束时间!',1)
		);
		$duser = D('Home/Users');
	 	//检测账号是否存在
	 	$hasLoginName = $duser->checkLoginKey(I("loginName"));
	    if($hasLoginName['status']!=1){
	 		$rd = array('status'=>-2,'msg'=>($hasLoginName['status']==-2)?"不能使用该账号":"该账号已存在");
	 		return $rd;
	 	}
	 	$hasUserPhone = $duser->checkLoginKey(I("userPhone"),0,false);
	 	if($hasUserPhone['status']!=1){
	 		$rd = array('status'=>-7,'msg'=>"该手机号已存在");;
	 		return $rd;
	 	}
	 	$hasShopName = $this->checkShopName(I('shopName'),0);
	 	if($hasShopName['status']!=1){
	 		$rd = array('status'=>-8,'msg'=>($hasShopName['status']==-2)?"不能使用该店铺名称":"该店铺名称已存在");;
	 		return $rd;
	 	}
	 	$u = M('users');
	 	$s = M('shops');
		if(!$u->validate($userRules)->create()){
			$rd['msg'] = $u->getError();
			return $rd;
		}
	    if(!$s->validate($shopRules)->create()){
			$rd['msg'] = $s->getError();
			return $rd;
		}
		if(I('relateAreaId')=='' && I('relateCommunityId')==''){
			$rd['msg'] = '请选择配送区域!';
			return $rd;
		}
		$u->loginSecret = rand(1000,9999);
		$u->loginPwd = md5($u->loginPwd.$u->loginSecret);
		$u->userStatus = 1;
		$u->userType = 0;
		$u->userFlag = 1;
		$u->createTime = date('Y-m-d H:i:s');
	    $userId = $u->add();
		if(false !== $userId){
			$s->userId = $userId;
			$s->deliveryStartMoney = (float)I('deliveryStartMoney');
			$s->deliveryFreeMoney = (float)I("deliveryFreeMoney",0);
		    $s->deliveryMoney = (float)I("deliveryMoney",0);
		    $s->avgeCostMoney = (float)I("avgeCostMoney",0);
		    $s->deliveryCostTime = (int)I("deliveryCostTime",0);
		    $s->invoiceRemarks = I("invoiceRemarks");
		    $s->qqNo = I("qqNo");
			$s->shopStatus = 0;
			$s->shopAtive = (int)I("shopAtive",1)?1:0;
			$s->shopFlag = 1;
			$s->createTime = date('Y-m-d H:i:s');
			$shopId = $s->add();
			if(false !== $shopId){
				 $rd['status']= 1;
				 $rd['userId']= $userId;
				 //增加商家评分记录
				 $data = array();
				 $data['shopId'] = $shopId;
				 $m = M('shop_scores');
				 $m->add($data);
				 //建立店铺和社区的关系
				 $relateArea = self::formatIn(",", I('relateAreaId')) ;
				 $relateCommunity = self::formatIn(",",I('relateCommunityId'));
				 if($relateArea!=''){
						$m = M('shops_communitys');
						$relateAreas = explode(',',$relateArea);
						foreach ($relateAreas as $v){
							if($v=='' || $v=='0')continue;
							$tmp = array();
							$tmp['shopId'] = $shopId;
							$tmp['areaId1'] = (int)I("areaId1");
							$tmp['areaId2'] = (int)I("areaId2");
							$tmp['areaId3'] = $v;
							$tmp['communityId'] = 0;
							$ra = $m->add($tmp);
						}
				 }
				 if($relateCommunity!=''){
					    $m = M('communitys');
						$lc = $m->where('communityFlag=1 and (communityId in(0,'.$relateCommunity.") or areaId3 in(0,".$relateArea."))")->select();
						if(count($lc)>0){
						    $m = M('shops_communitys');
							foreach ($lc as $key => $v){
								$tmp = array();
								$tmp['shopId'] = $shopId;
								$tmp['areaId1'] = $v['areaId1'];
								$tmp['areaId2'] = $v['areaId2'];
								$tmp['areaId3'] = $v['areaId3'];
								$tmp['communityId'] = $v['communityId'];
								$ra = $m->add($tmp);
							}
						}
				}
					
				//记录登录日志
				$data = array();
				$data["userId"] = $userId;
				$data["loginTime"] = date('Y-m-d H:i:s');
				$data["loginIp"] = get_client_ip();
				M('log_user_logins')->add($data);
			}
		}
		
		return $rd;
	 } 
	
	 /**
	  * 会员注册开通店铺
	  */
	 public function addByUser($userId){
	 	$rd = array('status'=>-1);
	 	//检测用户是否已经有开店申请或者开店了
		$sql = "select count(*) counts from __PREFIX__shops s where s.shopFlag=1 and userId=".$userId;
		$checkRs = $this->queryRow($sql);
		if($checkRs['counts']>0){
			$rd['msg'] = '店铺申请已存在,请勿重复申请!';
			return $rd;
		}
	 	$userRules = array(
		     array('userName','require','店主姓名不能为空!',1,'',1),
		     array('userPhone','require','手机号不能为空!',1),
		);
	 	//新注册账号
	 	$shopRules = array(
		     array('areaId1','integer','请选择所在省份!',1),
		     array('areaId2','integer','请选择所在城市!',1),
		     array('areaId3','integer','请选择所在县区!',1),
		     array('goodsCatId1','integer','请选择行业!',1),
		     array('shopName','require','请输入店铺名称!',1),
		     array('shopCompany','require','请输入公司名称!',1),
		     array('shopTel','require','请输入公司!电话',1),
		     array('shopImg','require','请上传公司图标!',1),
		     array('shopAddress','require','请输入公司地址!',1),
		     array('bankId','integer','请选择银行!',1),
		     array('bankNo','require','请输入银行卡号!',1),
	 		 array('bankUserName','require','请输入银行卡所有人名称!',1),
		     array('latitude','require','请标记店铺地址!',1),
		     array('longitude','require','请标记店铺地址!',1),
		     array('mapLevel','integer','请标记店铺地址!',1),
		     array('isInvoice',array(0,1),'无效的开发票状态!',1,'in'),
		     array('serviceStartTime','double','请选择店铺开始时间!'),
		     array('serviceEndTime','double','请选择电批结束时间!',1)
		);
	    $hasShopName = $this->checkShopName(I('shopName'),0);
	 	if($hasShopName['status']!=1){
	 		$rd = array('status'=>-8,'msg'=>($hasShopName['status']==-2)?"不能使用该店铺名称":"该店铺名称已存在");;
	 		return $rd;
	 	}
	 	$hasUserPhone = D('Admin/Users')->checkLoginKey(I("userPhone"),$userId,false);
	 	if($hasUserPhone['status']!=1){
	 		$rd = array('status'=>-7,'msg'=>'该手机号已存在!');;
	 		return $rd;
	 	}
	 	$u = M('users');
	 	$s = M('shops');
		if(!$u->validate($userRules)->create()){
			$rd['msg'] = $u->getError();
			return $rd;
		}
	    if(!$s->validate($shopRules)->create()){
			$rd['msg'] = $s->getError();
			return $rd;
		}
		if(I('relateAreaId')=='' && I('relateCommunityId')==''){
			$rd['msg'] = '请选择配送区域!';
			return $rd;
		}
		$rs = $u->where('userId='.$userId)->save();
		if(false !== $rs){
			$s->userId = $userId;
			$s->isSelf = 0;
			$s->deliveryType = 0;
			$s->deliveryStartMoney = (float)I('deliveryStartMoney',0);
			$s->deliveryFreeMoney = (float)I("deliveryFreeMoney",0);
		    $s->deliveryMoney = (float)I("deliveryMoney",0);
			$s->avgeCostMoney = (float)I("avgeCostMoney",0);
			$s->deliveryCostTime = (int)I("deliveryCostTime",0);
			$s->shopStatus = 0;
			$s->shopAtive = (int)I("shopAtive",1)?1:0;
			$s->shopFlag = 1;
			$s->createTime = date('Y-m-d H:i:s');
			$s->qqNo = I("qqNo");
			$s->invoiceRemarks = I("invoiceRemarks");
		    $shopId = $s->add();
			if(false !== $shopId){

				$rd['status']= 1;
				//增加商家评分记录
				$data = array();
				$data['shopId'] = $shopId;
				$m = M('shop_scores');
				$m->add($data);
			    //建立店铺和社区的关系
				$relateArea = I('relateAreaId');
				$relateCommunity = I('relateCommunityId');
				if($relateArea!=''){
					$m = M('shops_communitys');
					$relateAreas = explode(',',$relateArea);
					foreach ($relateAreas as $v){
						if($v=='' || $v=='0')continue;
						$tmp = array();
						$tmp['shopId'] = $shopId;
						$tmp['areaId1'] = (int)I("areaId1");
						$tmp['areaId2'] = (int)I("areaId2");
						$tmp['areaId3'] = $v;
						$tmp['communityId'] = 0;
						$ra = $m->add($tmp);
					}
				}
				if($relateCommunity!=''){
					$m = M('communitys');
					$lc = $m->where('communityFlag=1 and (communityId in(0,'.$relateCommunity.") or areaId3 in(0,".$relateArea."))")->select();
					if(count($lc)>0){
						$m = M('shops_communitys');
						foreach ($lc as $key => $v){
							$tmp = array();
							$tmp['shopId'] = $shopId;
							$tmp['areaId1'] = $v['areaId1'];
							$tmp['areaId2'] = $v['areaId2'];
							$tmp['areaId3'] = $v['areaId3'];
							$tmp['communityId'] = $v['communityId'];
							$ra = $m->add($tmp);
						}
					}
				}
		    }	
		}	
		return $rd;
	 } 
    /**
	  * 修改
	  */
	 public function edit($shopId,$isApply=false){
	 	$rd = array('status'=>-1);
	 	if($shopId==0)return $rd;
	 	$m = M('shops');
	 	//加载商店信息
	 	$shops = $m->where('shopId='.$shopId)->find();
	    $hasShopName = $this->checkShopName(I('shopName'),$shopId);
	 	if($hasShopName['status']==0){
	 		$rd = array('status'=>-8,'msg'=>'该店铺名称已存在!');;
	 		return $rd;
	 	}
	    if(!WSTCheckFilterWords(I('shopName'),$GLOBALS['CONFIG']['limitAccountKeys'])){
	 		$rd['msg'] = '不能使用该店铺名称';
	 		return $rd;
	 	}
	    $data = array();
		$data["shopName"] = I("shopName");
		$data["shopCompany"] = I("shopCompany");
		$data["shopImg"] = I("shopImg");
		$data["shopAddress"] = I("shopAddress");
		$data["deliveryStartMoney"] = I("deliveryStartMoney",0);
		$data["deliveryCostTime"] = I("deliveryCostTime",0);
		$data["deliveryFreeMoney"] = I("deliveryFreeMoney",0);
		$data["deliveryMoney"] = I("deliveryMoney",0);
		$data["avgeCostMoney"] = I("avgeCostMoney",0);
		$data["isInvoice"] = (int)I("isInvoice",1);
		$data["serviceStartTime"] = I("serviceStartTime");
		$data["serviceEndTime"] = I("serviceEndTime");
		$data["shopAtive"] = (int)I("shopAtive",1);
		$data["shopTel"] = I("shopTel");
		$data["bankId"] = (int)I("bankId");
		$data["bankNo"] = I("bankNo");
		$data["bankUserName"] = I("bankUserName");
		if($isApply){
			$data["shopStatus"] = 0;
		}
		if($this->checkEmpty($data,true)){
			$data["qqNo"] = I("qqNo");
			$data["invoiceRemarks"] = I("invoiceRemarks");
			$rs = $m->where("shopId=".$shopId)->save($data);
		    if(false !== $rs){
		    	S('WST_CACHE_RECOMM_SHOP_'.$shops['areaId2'],null);
		    	$USER = session('WST_USER');
		    	$data["serviceEndTime"] = str_replace('.5',':30',$data["serviceEndTime"]);
		        $data["serviceStartTime"] = str_replace('.5',':30',$data["serviceStartTime"]);
		    	session('WST_USER',array_merge($USER,$data));
				$rd['status']= 1;
				//修改用户资料
				$m = M('users');
				$data = array();
				$data[userName] = I("userName");
				$m->where("userId=".$shops['userId'])->save($data);
				if($shops['isSelf']==0){
			        //建立店铺和社区的关系
					$relateArea = I('relateAreaId');
					$relateCommunity = I('relateCommunityId');
					$m = M('shops_communitys');
					$m->where('shopId='.$shopId)->delete();
					if($relateArea!=''){
						$relateAreas = explode(',',$relateArea);
						foreach ($relateAreas as $v){
							if($v=='' || $v=='0')continue;
							    $tmp = array();
								$tmp['shopId'] = $shopId;
								$tmp['areaId1'] = (int)I("areaId1");
								$tmp['areaId2'] = (int)I("areaId2");
								$tmp['areaId3'] = $v;
								$tmp['communityId'] = 0;
								$ra = $m->add($tmp);
						}
					}
					if($relateCommunity!=''){
					    $m = M('communitys');
					    $lc = $m->where('communityFlag=1 and (communityId in(0,'.$relateCommunity.") or areaId3 in(0,".$relateArea."))")->select();
					    if(count($lc)>0){
					    	$m = M('shops_communitys');
							foreach ($lc as $key => $v){
								$tmp = array();
								$tmp['shopId'] = $shopId;
								$tmp['areaId1'] = $v['areaId1'];
								$tmp['areaId2'] = $v['areaId2'];
								$tmp['areaId3'] = $v['areaId3'];
								$tmp['communityId'] = $v['communityId'];
								$ra = $m->add($tmp);
							}
						}
					}
				}
			}
		}
		return $rd;
	 } 
	 
	 
	 /**
	  * 修改店铺设置
	  */
	 public function editShopCfg($shopId){
	 	
	 	$mc = M('shop_configs');
	 	//加载商店信息
	 	$shopcg = $mc->where('shopId='.$shopId)->find();
	 	
	 	$scdata = array();
	 	$scdata["shopId"] =  $shopId;
	 	$scdata["shopTitle"] =  I("shopTitle");
	 	$scdata["shopKeywords"] =  I("shopKeywords");
	 	$scdata["shopBanner"] =  I("shopBanner");
	 	$scdata["shopDesc"] =  I("shopDesc");
	 	$scdata["shopAds"] =  I("shopAds");
	 	$scdata["shopAdsUrl"] =  I("shopAdsUrl");
	 	if($shopcg["configId"]>0){
	 		$rs = $mc->where("shopId=".$shopId)->save($scdata);
	 	}else{
	 		$mc->add($scdata);
	 	}
	 	S('WST_CACHE_RECOMM_SHOP_'.$shopcg['areaId2'],null);
	 	$rd['status']= 1;
	 	return $rd;
	 }
	 
    /**
	 * 获取指定对象
	 */
     public function get($id){
	 	$m = M('shops');
		$rs = $m->where("shopId=".(int)$id)->find();
		$m = M('users');
		$us = $m->where("userId=".$rs['userId'])->find();
		$rs['userName'] = $us['userName'];
		$rs['userPhone'] = $us['userPhone'];
		//获取店铺社区关系
		$m = M('shops_communitys');
		$rc = $m->where('shopId='.(int)$id)->select();
		$relateArea = array();
		$relateCommunity = array();
		if(count($rc)>0){
			foreach ($rc as $v){
				if($v['communityId']==0 && !in_array($v['areaId3'],$relateArea))$relateArea[] = $v['areaId3'];
				if(!in_array($v['communityId'],$relateCommunity))$relateCommunity[] = $v['communityId'];
			}
		}
		$rs['relateArea'] = implode(',',$relateArea);
		$rs['relateCommunity'] = implode(',',$relateCommunity);
		return $rs;
	 } 
	 
	 public function getShopByUser($userId){
	 	
	 	$m = M('users');
	 	$us = $m->where("userId=".$userId)->find();

	 	$m = M('shops');
	 	$rs = $m->where("userId=".$userId)->find();
	 	
	 	$rs['userName'] = $us['userName'];
	 	$rs['userPhone'] = $us['userPhone'];
	 	
	 	//获取店铺社区关系
	 	$m = M('shops_communitys');
	 	$rc = $m->where('shopId='.(int)$rs["shopId"])->select();
	 	$relateArea = array();
	 	$relateCommunity = array();
	 	if(count($rc)>0){
	 		foreach ($rc as $v){
	 			if($v['communityId']==0 && !in_array($v['areaId3'],$relateArea))$relateArea[] = $v['areaId3'];
	 			if(!in_array($v['communityId'],$relateCommunity))$relateCommunity[] = $v['communityId'];
	 		}
	 	}
	 	$rs['relateArea'] = implode(',',$relateArea);
	 	$rs['relateCommunity'] = implode(',',$relateCommunity);
	 	return $rs;
	 }
	 
	 /**
	  * 获取指定对象
	  */
	 public function getShopCfg($id){
	 	
	 	$mc = M('shop_configs');
	 	$rs = $mc->where("shopId=".$id)->find();
	 	$shopAds = array();
	 	if($rs["shopAds"]!=''){
		 	$shopAdsImg = explode('#@#',$rs["shopAds"]);
		 	$shopAdsUrl = explode('#@#',$rs["shopAdsUrl"]);
		 	for($i=0;$i<count($shopAdsImg);$i++){
		 		$adsImg = $shopAdsImg[$i];
		 		$shopAds[$i]["adImg"] = $adsImg;
		 		$imgpaths= explode('.',$adsImg);
		 		$shopAds[$i]["adImg_thumb"] = $imgpaths[0]."_thumb.".$imgpaths[1];
		 		$shopAds[$i]["adUrl"] = $shopAdsUrl[$i];
		 	}
	 	}
	 	$rs['shopAds'] = $shopAds;
	 	
	 	return $rs;
	 }
	/**
	 * 获取店铺信息
	 */
	public function getShopInfo($oshopId = 0){
		$m = M('shops');
		$shopId = (int)I("shopId");
		$shopId = ($shopId==0)?$oshopId:$shopId;
		$rs = $m->where("shopStatus=1 and shopId=".$shopId)->find();
		if(empty($rs))return array();
		$mc = M('shop_configs');
		$spc = $mc->where("shopId=".$shopId)->find();
		$shopAds = array();
		if($spc["shopAds"]!=''){
			$shopAdsImg = explode('#@#',$spc["shopAds"]);
			$shopAdsUrl = explode('#@#',$spc["shopAdsUrl"]);
			for($i=0;$i<count($shopAdsImg);$i++){
				$adsImg = $shopAdsImg[$i];
				$shopAds[$i]["adImg"] = $adsImg;
				$imgpaths= explode('.',$adsImg);
				$shopAds[$i]["adImg_thumb"] = $imgpaths[0]."_thumb.".$imgpaths[1];
				$shopAds[$i]["adUrl"] = $shopAdsUrl[$i];
			}
		}
		$rs['shopAds'] = $shopAds;
		$rs['shopTitle'] = $spc["shopTitle"];
		$rs['shopDesc'] = $spc["shopDesc"];
		$rs['shopKeywords'] = $spc["shopKeywords"];
		$rs['shopBanner'] = $spc["shopBanner"];

		//热销排名
		$sql = "SELECT g.saleCount, g.shopId , g.goodsId , g.goodsName,g.goodsImg, g.goodsThums,g.shopPrice,g.marketPrice, g.goodsSn 
						FROM __PREFIX__goods g 
						WHERE g.goodsFlag = 1 AND g.isAdminBest = 1 AND g.isSale = 1 AND g.goodsStatus = 1 AND g.shopId = $shopId
						ORDER by g.saleCount desc limit 5";	
		$hotgoods = $this->query($sql);
		$rs["hotgoods"] = $hotgoods;
		
		return $rs; 
	}
	
	
	/**
	  * 统计附近的商铺
	  */
	public function getDistrictsShops($obj){
		$m = M('areas');
		$areaId3 = (int)$obj["areaId3"];
		$shopName = WSTAddslashes($obj["shopName"]);
		$keyWords = WSTAddslashes(I("keyWords"));
   		$deliveryStartMoney = $obj["deliveryStartMoney"];
   		if($deliveryStartMoney != -1){
   			$deliverys = explode("-",$deliveryStartMoney);
   			$deliveryStart = intval($deliverys[0]);
   			$deliveryEnd = intval($deliverys[1]);
   		}
   		
   		$deliveryMoney = $obj["deliveryMoney"];
		if($deliveryMoney != -1){
   			$mdeliverys = explode("-",$deliveryMoney);
   			$mdeliveryStart = intval($mdeliverys[0]);
   			$mdeliveryEnd = intval($mdeliverys[1]);
   		}
   		
   		$shopAtive = (int)$obj["shopAtive"];
   		
   		
   		$words = array();
   		$words1 = array();
   		$words2 = array();
   		if($keyWords!=""){
   			$keyWords = urldecode($keyWords);
   			$words1 = explode(" ",$keyWords);
   		}
   		
   		
   		$words = array();
   		if($shopName!=""){
   			$keyWords = urldecode($shopName);
   			$words2 = explode(" ",$keyWords);
   		}
   		$words = array_merge($words1,$words2);
		$dsplist = array();
		$sql = "SELECT communityId,communityName from __PREFIX__communitys WHERE communityFlag=1 AND isShow = 1 AND areaId3=".$areaId3;
		$ctlist = $this->query($sql);
		$ctsplist = array();
		for($k=0;$k<count($ctlist);$k++){
			$community = $ctlist[$k];
			$communityId = $community["communityId"];
			$sql = "SELECT count(*) as spcnt from __PREFIX__shops_communitys sc,__PREFIX__shops sp WHERE sp.shopStatus = 1 AND sp.shopFlag = 1 AND sc.shopId = sp.shopId AND communityId=".$communityId;
			
			if(!empty($words)){
				$sarr = array();
				foreach ($words as $key => $word) {
					if($word!=""){
						$sarr[] = "sp.shopName LIKE '%$word%'";
					}
				}
				$sql .= " AND (".implode(" or ", $sarr).")";
			}
			/*if($keyWords!="" && $shopName!=""){
				$sql .= " AND (sp.shopName like '%$keyWords%' OR shopName like '%$shopName%')";
			}else{
				if($keyWords!=""){
					$sql .= " AND sp.shopName like '%$keyWords%'";
				}
				if($shopName!=""){
					$sql .= " AND sp.shopName like '%$shopName%'";
				}
			}*/
			if($deliveryStart!="" && $deliveryStart>=0){
				$sql .= " AND deliveryStartMoney >= $deliveryStart";
			}
			if($deliveryEnd!="" && $deliveryEnd>0){
				$sql .= " AND deliveryStartMoney < $deliveryEnd";
			}
				
			if($mdeliveryStart!="" && $mdeliveryStart>=0){
				$sql .= " AND deliveryMoney >= $mdeliveryStart";
			}
			if($mdeliveryEnd!="" && $mdeliveryEnd>0){
				$sql .= " AND deliveryMoney < $mdeliveryEnd";
			}
				
			if($shopAtive!="" && $shopAtive >=0){
				$sql .= " AND shopAtive = $shopAtive";
			}
			$splist = $this->query($sql);
			$spcnt = $splist[0]["spcnt"];
			$community["spcnt"] = $spcnt;
			if($spcnt>0)$ctsplist[] = $community;
		}
		return $ctsplist;
	}
	
	/**
	  * 统计附近的商铺
	  */
	public function getShopByCommunitys($obj){
		
		$communityId = (int)$obj["communityId"];
		$shopName = $obj["shopName"];
		$keyWords = WSTAddslashes(urldecode(I("keyWords")));
		$pcurr = (int)I("curr");
		$deliveryStartMoney = $obj["deliveryStartMoney"];
		if($deliveryStartMoney != -1){
			$deliverys = explode("-",$deliveryStartMoney);
			$deliveryStart = intval($deliverys[0]);
			$deliveryEnd = intval($deliverys[1]);
		}
		 
		$deliveryMoney = $obj["deliveryMoney"];
		if($deliveryMoney != -1){
			$mdeliverys = explode("-",$deliveryMoney);
			$mdeliveryStart = intval($mdeliverys[0]);
			$mdeliveryEnd = intval($mdeliverys[1]);
		}

		$words = array();
		$words1 = array();
		$words2 = array();
		if($keyWords!=""){
			$words1 = explode(" ",$keyWords);
		}
		 
		 
		$words = array();
		if($shopName!=""){
			$keyWords = urldecode($shopName);
			$words2 = explode(" ",$keyWords);
		}
		$words = array_merge($words1,$words2);
		
		$shopAtive = $obj["shopAtive"];
		$dsplist = array();
		$sql = "SELECT sp.shopId,sp.shopName,sp.shopAddress,sp.deliveryStartMoney,sp.shopAtive,sp.deliveryMoney,sp.shopImg,sp.deliveryCostTime,sp.deliveryFreeMoney
		   ,sp.avgeCostMoney from __PREFIX__shops_communitys sc,__PREFIX__shops sp WHERE sp.shopStatus = 1 AND sp.shopFlag = 1 AND sc.shopId = sp.shopId AND sc.communityId=".$communityId;
		
		/*if($keyWords!="" && $shopName!=""){
			$sql .= " AND (sp.shopName like '%$keyWords%' OR shopName like '%$shopName%')";
		}else{
			if($keyWords!=""){
				$sql .= " AND sp.shopName like '%$keyWords%'";
			}
			if($shopName!=""){
				$sql .= " AND sp.shopName like '%$shopName%'";
			}
		}*/
		
		if(!empty($words)){
			$sarr = array();
			foreach ($words as $key => $word) {
				if($word!=""){
					$sarr[] = "sp.shopName LIKE '%$word%'";
				}
			}
			$sql .= " AND (".implode(" or ", $sarr).")";
		}
		
		if($deliveryStart!="" && $deliveryStart>=0){
			$sql .= " AND deliveryStartMoney >= $deliveryStart";
		}
		if($deliveryEnd!="" && $deliveryEnd>0){
			$sql .= " AND deliveryStartMoney < $deliveryEnd";
		}
		
		if($mdeliveryStart!="" && $mdeliveryStart>=0){
			$sql .= " AND deliveryMoney >= $mdeliveryStart";
		}
		if($mdeliveryEnd!="" && $mdeliveryEnd>0){
			$sql .= " AND deliveryMoney < $mdeliveryEnd";
		}
		
		if($shopAtive >-1){
			$sql .= " AND shopAtive = $shopAtive";
		}
		$dslist = $this->pageQuery($sql,$pcurr);
		
		return $dslist;
	}
	
	/**
	  * 统计店铺信息
	  */
	public function getShopDetails($obj){
		
		$shopId = (int)$obj["shopId"];
		$dsplist = array();
		$sql = "SELECT totalScore,totalScore ,
				       goodsScore,goodsUsers,
				       serviceScore,serviceUsers,
					   timeScore,timeUsers
				FROM __PREFIX__shop_scores WHERE shopId = $shopId";
		$scores = $this->queryRow($sql);
		$data = array();
		$data["goodsScore"] = $scores["goodsUsers"]?round($scores["goodsScore"]/$scores["goodsUsers"]):0;
		$data["timeScore"] = $scores["timeUsers"]?round($scores["timeScore"]/$scores["timeUsers"]):0;
		$data["serviceScore"] = $scores["serviceUsers"]?round($scores["serviceScore"]/$scores["serviceUsers"]):0;
		//待审核商品
		$sql = "SELECT count(*) cnt FROM __PREFIX__goods WHERE goodsStatus = 0 and goodsFlag=1 and isSale=1 and shopId = $shopId";
		$goods = $this->queryRow($sql);
		$data["waitGoodsCnt"] = $goods["cnt"];
		//仓库中商品
		$sql = "SELECT count(*) cnt FROM __PREFIX__goods WHERE isSale = 0 and goodsFlag=1 AND shopId = $shopId";
		$goods = $this->queryRow($sql);
		$data["waitSaleGoodsCnt"] = $goods["cnt"];
		//出售中的商品
		$sql = "SELECT count(*) cnt FROM __PREFIX__goods WHERE isSale = 1 AND goodsStatus = 1 and goodsFlag=1 AND shopId = $shopId";
		$goods = $this->queryRow($sql);
		$data["onSaleGoodsCnt"] = $goods["cnt"];
		//买家留言
		$sql = "SELECT count(*) cnt FROM __PREFIX__goods_appraises WHERE shopId = $shopId";
		$appraises = $this->queryRow($sql);
		$data["appraisesCnt"] = $appraises["cnt"];
		//待受理订单
		$sql = "SELECT count(*) cnt FROM __PREFIX__orders WHERE shopId = $shopId AND orderStatus = 0 and orderFlag=1";
		$orders = $this->queryRow($sql);
		$data["waitHandleOrderCnt"] = $orders["cnt"];
		//待发货订单
		$sql = "SELECT count(*) cnt FROM __PREFIX__orders WHERE shopId = $shopId AND orderStatus in (1,2) and orderFlag=1";
		$orders = $this->queryRow($sql);
		$data["waitSendOrderCnt"] = $orders["cnt"];
		
		//待结束
		$sql = "SELECT count(*) cnt FROM __PREFIX__orders WHERE shopId = $shopId AND orderStatus in (3,-3) and orderFlag=1";
		$appOrders = $this->queryRow($sql);
		$data["appraisesOrderCnt"] = $appOrders["cnt"];
		
		//周订单量
		$wdate=date("Y-m-d",mktime(0,0,0,date("m"),date("d")-7,date("Y")));
		$sql = "SELECT count(*) cnt, sum(totalMoney) totalMoney FROM __PREFIX__orders WHERE shopId = $shopId AND createTime >='$wdate' and orderFlag=1 and orderStatus>=0 ";
		$orders = $this->queryRow($sql);
		$data["weekOrderCnt"] = $orders["cnt"];
		$data["weekOrderMoney"] = $orders["totalMoney"]?$orders["totalMoney"]:0;
		
		
		//一个月订单量
		$mdate=date("Y-m-d",mktime(0,0,0,date("m")-1,date("d"),date("Y")));
		$sql = "SELECT count(*) cnt, sum(totalMoney) totalMoney FROM __PREFIX__orders WHERE shopId = $shopId AND createTime >='$mdate' and orderFlag=1 and orderStatus>=0 ";
		$orders = $this->queryRow($sql);
		$data["monthOrderCnt"] = $orders["cnt"];
		$data["monthOrderMoney"] = $orders["totalMoney"]?$orders["totalMoney"]:0;
		return $data;
	}
	/**
	 * 获取店铺评分
	 */
	public function getShopScores($obj){
		$shopId = (int)$obj["shopId"];
		$sql = "SELECT totalScore,totalScore ,goodsScore,goodsUsers,serviceScore,serviceUsers,timeScore,timeUsers
				FROM __PREFIX__shop_scores WHERE shopId = $shopId";
		$scores = $this->queryRow($sql);
		$data = array();
		$goodsScore = $scores["goodsUsers"]?sprintf('%.1f',$scores["goodsScore"]/$scores["goodsUsers"]):0;
		$timeScore = $scores["timeUsers"]?sprintf('%.1f',$scores["timeScore"]/$scores["timeUsers"]):0;
		$serviceScore = $scores["serviceUsers"]?sprintf('%.1f',$scores["serviceScore"]/$scores["serviceUsers"]):0;
		$data["goodsScore"] = $goodsScore;
		$data["timeScore"] = $timeScore;
		$data["serviceScore"] = $serviceScore;
		return $data;
	}
	
	/**
	 * 检查用户是否正在申请开店
	 */
	public function checkOpenShopStatus($userId){
		$m = M('shops');
		$sql = "select shopStatus,statusRemarks from __PREFIX__shops where userId=".$userId." and shopFlag=1 ";
		$row = $this->queryRow($sql);
		return $row;
	}
	
	
	/**
	 * 获取自营店铺
	 */
	public function getSelfShop($areaId2){
		$m = M('shops');
		$sql = "select * from __PREFIX__shops where areaId2=".$areaId2." and isSelf=1 and shopFlag=1 and shopStatus = 1";
		$shop = $this->queryRow($sql);
		return $shop;
	}
	
	/**
	 * 检测自营店铺ID
	 */
	function checkSelfShopId($areaId2){
		$m = M('shops');
		$sql = "select shopId from __PREFIX__shops where areaId2=".$areaId2." and isSelf=1 and shopFlag=1 and shopStatus = 1";
		$shop = $this->queryRow($sql);
		return (int)$shop['shopId'];
	}
	/**
	 * 获取店铺搜索提示列表
	 * @return \Think\mixed
	 */
	public function getKeyList($areaId2){
		$keywords = I("keywords");
		$data =array();
		$data['shopStatus'] = 1;
		$data['areaId2'] = $areaId2;
		$data['shopFlag'] = 1;
		$data['shopName'] = array('like','%'.$keywords.'%');
		$rs = $this->where($data)->distinct(true)->field('shopName as searchKey')->limit(10)->select();
		return $rs?$rs:array();
	}
	 
}